home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / Map$CircleRegionContainment.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  1.5 KB  |  64 lines

  1. package javax.swing.text.html;
  2.  
  3. import javax.swing.text.AttributeSet;
  4. import javax.swing.text.html.HTML.Attribute;
  5.  
  6. class Map$CircleRegionContainment implements Map.RegionContainment {
  7.    // $FF: renamed from: x int
  8.    int field_0;
  9.    // $FF: renamed from: y int
  10.    int field_1;
  11.    int radiusSquared;
  12.    float[] percentValues;
  13.    int lastWidth;
  14.    int lastHeight;
  15.  
  16.    public Map$CircleRegionContainment(AttributeSet var1) {
  17.       int[] var2 = Map.extractCoords(var1.getAttribute(Attribute.COORDS));
  18.       if (var2 != null && var2.length == 3) {
  19.          this.field_0 = var2[0];
  20.          this.field_1 = var2[1];
  21.          this.radiusSquared = var2[2] * var2[2];
  22.          if (var2[0] >= 0 && var2[1] >= 0 && var2[2] >= 0) {
  23.             this.percentValues = null;
  24.          } else {
  25.             this.lastWidth = this.lastHeight = -1;
  26.             this.percentValues = new float[3];
  27.  
  28.             for(int var3 = 0; var3 < 3; ++var3) {
  29.                if (var2[var3] < 0) {
  30.                   this.percentValues[var3] = (float)var2[var3] / -100.0F;
  31.                } else {
  32.                   this.percentValues[var3] = -1.0F;
  33.                }
  34.             }
  35.          }
  36.  
  37.       } else {
  38.          throw new RuntimeException("Unable to parse circular area");
  39.       }
  40.    }
  41.  
  42.    public boolean contains(int var1, int var2, int var3, int var4) {
  43.       if (this.percentValues != null && (this.lastWidth != var3 || this.lastHeight != var4)) {
  44.          int var5 = Math.min(var3, var4) / 2;
  45.          this.lastWidth = var3;
  46.          this.lastHeight = var4;
  47.          if (this.percentValues[0] != -1.0F) {
  48.             this.field_0 = (int)(this.percentValues[0] * (float)var3);
  49.          }
  50.  
  51.          if (this.percentValues[1] != -1.0F) {
  52.             this.field_1 = (int)(this.percentValues[1] * (float)var4);
  53.          }
  54.  
  55.          if (this.percentValues[2] != -1.0F) {
  56.             this.radiusSquared = (int)(this.percentValues[2] * (float)Math.min(var3, var4));
  57.             this.radiusSquared *= this.radiusSquared;
  58.          }
  59.       }
  60.  
  61.       return (var1 - this.field_0) * (var1 - this.field_0) + (var2 - this.field_1) * (var2 - this.field_1) <= this.radiusSquared;
  62.    }
  63. }
  64.